
#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include<QMainWindow>
#include<QPainter>
#include<QEvent>
#include<QPaintEvent>
#include<QPen>
#include<QBrush>
#include<QColor>
#include<QKeyEvent>
#include<QTimer>
#include<QGridLayout>
#include<QLabel>
#include<QMessageBox>
//#include<QDesktopWidget>
#include<QApplication>
#include"tetris.h"
#include"tetrisbox.h"
#include"nexttetrisbox.h"

//游戏状态
#define STATUS_ON 0    //进行中
#define STATUS_PAUSE 1  //暂停
#define STATUS_OFF 2    //未开始
#define STATUS_END 3    //游戏结束


class MainWindow : public QMainWindow

{
    Q_OBJECT

public:
    MainWindow(QWidget *parent = nullptr);
    ~MainWindow();
    void keyPressEvent(QKeyEvent *event);      //键盘事件处理函数
    void changeEvent(QEvent *event);
    void updateScore();

public slots:
    void onTimer();

private:
    int status;                 //游戏状态
    tetris tetris;              //当前游戏的方块对象
    QTimer *timer;              //计时器（定时器更新触发）控制方块的下落和界面更新。
    tetrisbox *tetrisBox;       //表示方块的图形界面
    nexttetrisbox *nextTetrisBox;  //表示下一个方块的图形界面
    QGridLayout *mainLayout;
    QLabel *nextTetrislabel;
    QLabel *controllabel;         //label标签
    QLabel *w_controllabel;
    QLabel *s_controllabel;
    QLabel *a_controllabel;
    QLabel *d_controllabel;
    QLabel *h_controllabel;
    QLabel *j_controllabel;
    QLabel *c_controllabel;
    QLabel *m_controllabel;
    QLabel *scoreTitlelabel;      //显示得分和提示信息
    QLabel *scorelabel;

};

#endif // MAINWINDOW_H
